<?php

class Produtos_model extends Model {

    public function listaProdutos()
    {
        try {
            $produtosTable = Doctrine::getTable('NwsProduto');
            $produtos = $produtosTable->findAll();                
            return $produtos;
        } catch (Doctrine_Exception $e) {
            print $e->getMessage();
        }   
    }	
    
    public function listaGrades()
    {
        try {
            $grades = Doctrine::getTable('NwsProdutoGrade')->findAll();
            return $grades;
        } catch (Doctrine_Exception $e) {
            print $e->getMessage();
        }   
    }
    
    public function listaCategorias()
    {
        try {
            $query = "SELECT catCod,
                             catCodPai, 
                             (select catNom FROM nws_produto_categoria G WHERE G.catCod = N.catCodPai) as subCat,
                             catNom,
                             catSta 
                      FROM nws_produto_categoria N
                      ORDER BY catCodPai ASC";
            $rs = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAssoc($query);
            return $rs;
        } catch (Doctrine_Exception $e) {
            print $e->getMessage();
        }   
    }
    
    public function listaMarcas()
    {
        try {
            $marcas = Doctrine::getTable('NwsProdutoMarca')->findAll();
            return $marcas;
        } catch (Doctrine_Exception $e) {
            print $e->getMessage();
        }   
    }   
    
    public function insertProduto()
    {
        $produto = new NwsProduto;   
        $produto->setmarCod($_POST['marCod']);   
        $produto->setcatCod($_POST['catCod']);   
        $produto->setproNom($_POST['proNom']);
        $produto->setprocodRef($_POST['proCodRef']);
        $produto->setproVlr($_POST['proVlr']);
        $produto->setproPeso($_POST['proPeso']);
        $produto->setproVid($_POST['proVid']);
        $produto->setproDsc($_POST['proDsc']);    
        $produto->setproCmp($_POST['proCmp']);
        $produto->setproNumView($_POST['proNumView']);   
        $produto->setgrpCod($_POST['grpCod']);   
        $produto->setproFlgFre($_POST['proFlgFre']);    
        $produto->setproFlgDtq($_POST['proFlgDtq']);
        $produto->setproFlgNov($_POST['proFlgNov']);
        $produto->setproFlgVit($_POST['proFlgVit']);   
        $produto->setproFlgPrm($_POST['proFlgPrm']);   
        $produto->setproFlgPrmVlr($_POST['proFlgPrmVlr']);   
        $produto->setproFlgPrmDatIni($_POST['proFlgPrmDatIni']);    
        $produto->setproFlgPrmDatFim($_POST['proFlgPrmDatFim']);      
        $produto->setproSta($_POST['proSta']);
        $produto->insertProduto();
        header('location:'. BASE_URL_ADM . 'produtos/');
    } 
    
    public function editaProduto($proCod)
    {
        $produto = Doctrine::getTable('NwsProduto')->find($proCod);
        return $produto;
    }     
    
    public function insertImagemProduto($img)
    {
        $imagem = new NwsProdutoImagem;   
        $imagem->setproCod($_POST['proCod']);   
        $imagem->setimgImg($img);   
        $imagem->setimgLeg($_POST['imgLeg']);
        $imagem->setimgSta($_POST['imgSta']);
        $imagem->insertImagem();
        header('location:'. BASE_URL_ADM . 'produtos/editar/'.$_POST['proCod'].'#aba-2');
    }       
    
    public function listaImagens($proCod)
    {
        $imagens = Doctrine::getTable('NwsProdutoImagem')->findbyproCod($proCod);
        return $imagens;
    } 
    
    public function listaEspec($grpCod)
    {
        $espec = Doctrine::getTable('NwsProdutoEspecificacao')->findbygrpCod($grpCod);
        return $espec;
    }  
    
    public function listaTamanhoGrade($grpCod)
    {
        try {
            $query = "SELECT t.codTam, t.dscTam 
                      FROM nws_tamanhos t
                      INNER JOIN nws_produto_grade_rel gr ON (gr.codTam = t.codTam)
                      WHERE gr.codGra = ". $grpCod;
            $rs = Doctrine_Manager::getInstance()->getCurrentConnection()->fetchAssoc($query);
            return $rs;
        } catch (Doctrine_Exception $e) {
            print $e->getMessage();
        } 
    }
    
    public function insertEspecProduto($img)
    {
        $espec = new NwsProdutoEspecificacaoRel;   
        $espec->setproCod($_POST['proCod']);
        $espec->setesdCod($_POST['esdCod']);
        $espec->setintCodEsp($_POST['iniCodEsp']);     
        $espec->setimgEsp($img);   
        $espec->setlegEsp($_POST['legEsp']);
        $espec->setstaEsp($_POST['staEsp']);
        $espec->insertProEspecRel();
        header('location:'. BASE_URL_ADM . 'produtos/editar/'.$_POST['proCod'].'#aba-3');
    }  
    
    public function insertEstoqueProduto($k,$v)
    {
        $espec = new NwsProdutoEstoque;   
        $espec->setproCod($_POST['proCod']);
        $espec->setesdCod($_POST['esdCod']);
        $espec->setgrpCod($_POST['grpCod']);     
        $espec->setcodTam($k);
        $espec->setqtdEstq($v);
        $espec->insertProdutoEstoque();
    }  
    
    public function listaProdutopEspecificacao($proCod)
    {
        $espec = Doctrine::getTable('NwsProdutoEspecificacaoRel')->findbyproCod($proCod);
        return $espec;
    } 
    
    public function listaEstoque($proCod)
    {
        $estoq = Doctrine::getTable('NwsProdutoEstoque')->findbyproCod($proCod);
        return $estoq;
    } 
    
    public function editaEstoque($proCod,$esdCod)
    {      
        $estoque = Doctrine::getTable('NwsProdutoEstoque')->findByproCodAndesdCod($proCod,$esdCod);
        return $estoque;
    }
    
    public function editaEspec($proCod,$esdCod)
    {      
        $espec = Doctrine::getTable('NwsProdutoEspecificacaoRel')->findByproCodAndesdCod($proCod,$esdCod);
        return $espec;
    }    
    
    public function trocaStatusEspec($proCod,$esdCod,$staEsp)
    {
        $segmentos = Doctrine_Query::create()
        ->update('NwsProdutoEspecificacaoRel')
        ->set('staEsp', "'".$staEsp."'")
        ->where('proCod = '.$proCod)
        ->andwhere('esdCod = '.$esdCod);
        $segmentos->execute();
        header('location:'. BASE_URL_ADM . 'produtos/editar/'.$proCod.'#aba-3');
    }
    
    public function trocaStatusPro($proCod,$staEsp)
    {
        $produto = Doctrine_Query::create()
        ->update('NwsProduto')
        ->set('proSta', "'".$staEsp."'")
        ->where('proCod = '.$proCod);
        $produto->execute();
        header('location:'. BASE_URL_ADM . 'produtos/');
    }
}

?>
